using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Resources;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace KPIS.GERP.Models.HRM
{
	[Table("HrmActivity")]
    public class Activity
    {
		[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
		[DataMember, Display(Name = "ActId", ResourceType = typeof(Resources.AcActivitysResource))]
        public int ActId { get; set; }

        [ForeignKey("BgmProjectOperation")]
		[DataMember, Display(Name = "BgmProjOperId", ResourceType = typeof(Resources.AcActivitysResource))]
        public Nullable<int> BgmProjOperId { get; set; }

		[DataMember, Display(Name = "ActDescr", ResourceType = typeof(Resources.AcActivitysResource))]
        public string ActDescr { get; set; }

        [ForeignKey("AcActivityTypes")]
        [DataMember, Display(Name = "ActTypeId", ResourceType = typeof(Resources.AcActivitysResource))]
        public int ActTypeId { get; set; }

		[ForeignKey("JobSite")]
		[DataMember, Display(Name = "JobSiteId", ResourceType = typeof(Resources.AcActivitysResource))]
        public Nullable<int> JobSiteId { get; set; }

        [ForeignKey("MasCity")]
		[DataMember, Display(Name = "CityId", ResourceType = typeof(Resources.AcActivitysResource))]
        public Nullable<int> CityId { get; set; }

		[DataMember, Display(Name = "LocationText", ResourceType = typeof(Resources.AcActivitysResource))]
        public string LocationText { get; set; }

		[DataMember, Display(Name = "ActLimit", ResourceType = typeof(Resources.AcActivitysResource))]
        public Nullable<decimal> ActLimit { get; set; }

		[DataMember, Display(Name = "DateSignStart", ResourceType = typeof(Resources.AcActivitysResource))]
        public Nullable<System.DateTime> DateSignStart { get; set; }

		[DataMember, Display(Name = "DateSignEnd", ResourceType = typeof(Resources.AcActivitysResource))]
        public Nullable<System.DateTime> DateSignEnd { get; set; }

		[DataMember, Display(Name = "TimeSignEnd", ResourceType = typeof(Resources.AcActivitysResource))]
        public Nullable<System.TimeSpan> TimeSignEnd { get; set; }

		[DataMember, Display(Name = "DateActivityStart", ResourceType = typeof(Resources.AcActivitysResource))]
        public Nullable<System.DateTime> DateActivityStart { get; set; }

		[DataMember, Display(Name = "DateActivityEnd", ResourceType = typeof(Resources.AcActivitysResource))]
        public Nullable<System.DateTime> DateActivityEnd { get; set; }

		[DataMember, Display(Name = "DateAppStart", ResourceType = typeof(Resources.AcActivitysResource))]
        public Nullable<System.DateTime> DateAppStart { get; set; }

		[DataMember, Display(Name = "DateAppEnd", ResourceType = typeof(Resources.AcActivitysResource))]
        public Nullable<System.DateTime> DateAppEnd { get; set; }

		[DataMember, Display(Name = "Remarks", ResourceType = typeof(Resources.AcActivitysResource))]
        public string Remarks { get; set; }

		[DataMember, Display(Name = "RecordStatus", ResourceType = typeof(Resources.AcActivitysResource))]
        public string RecordStatus { get; set; }

		[DataMember, Display(Name = "CreatedBy", ResourceType = typeof(Resources.AcActivitysResource))]
        public string CreatedBy { get; set; }

		[DataMember, Display(Name = "CreatedWhen", ResourceType = typeof(Resources.AcActivitysResource))]
        public Nullable<System.DateTime> CreatedWhen { get; set; }

		[DataMember, Display(Name = "UpdatedBy", ResourceType = typeof(Resources.AcActivitysResource))]
        public string UpdatedBy { get; set; }

		[DataMember, Display(Name = "UpdatedWhen", ResourceType = typeof(Resources.AcActivitysResource))]
        public Nullable<System.DateTime> UpdatedWhen { get; set; }

        public virtual BGM.ProjectOperation BgmProjectOperation { get; set; }

        public virtual ActivityType AcActivityTypes { get; set; }

		public virtual HRM.JobSite JobSite { get; set; }

        public virtual MasCity MasCity { get; set; }

    }
}